1. 实数的机器表示 (Machine Representation of Numbers)

在计算机中,实数无法以无限精度存储,而是采用基于科学计数法的浮点数系统 (Floating-Point System) 来近似。

一个浮点数系统通常表示为 F(β,t,L,U),包含以下四个要素:

任意浮点数 x 可以表示为:

x = \pm (d_1\beta^{-1} + d_2\beta^{-2} + \dots + d_t\beta^{-t}) \cdot \beta^p $$ 其中 $0 \le d_i \le \beta - 1$,且 $L \le p \le U$。 ### 2. 规格化 (Normalization) 为了保证表示的唯一性并最大限度利用位宽,浮点数通常是**规格化 (Normalized)** 的。 - **定义:** 首位数字 $d_1$ 不能为 0(即 $d_1 \neq 0$)。 - **范围:** 对于尾数 $m$,满足 $\frac{1}{\beta} \le m < 1$。 - **隐含位 (Hidden Bit):** 在二进制 ($\beta=2$) 标准(如 IEEE 754)中,因为第一位总是 1,所以通常不需要物理存储它,从而多获得一位精度。 --- ### 3. IEEE 标准 (IEEE Standard) 两种主流的浮点数格式: - **Single Precision (单精度, 32-bit):** - 1位符号 (Sign) - 8位指数 (Exponent) - 23位尾数 (Mantissa) - 机器精度 $\epsilon \approx 10^{-7}$ - **Double Precision (双精度, 64-bit):** - 1位符号 - 11位指数 - 52位尾数 - 机器精度 $\epsilon \approx 10^{-16}$ --- ### 4. 机器精度与舍入误差 (Machine Precision & Rounding Errors) 由于计算机位数有限,无法精确表示所有实数,必须进行**舍入 (Rounding)**。衡量这种近似能力的关键指标是 **Machine Epsilon ($\epsilon_{\text{mach}}$)**。 - **定义:** 它是满足 $fl(1 + \epsilon) > 1$ 的最小正数(即计算机能区分 1 和 $1+\epsilon$ 的最小差距。 - **相对误差界限 (Relative Error Bound):** 浮点数表示 $fl(x)$ 与真实值 $x$ 的相对误差不会超过机器精度: $$ \left| \frac{fl(x) - x}{x} \right| \le \epsilon_{\text{mach}}

5. 算术异常与数值稳定性 (Arithmetic Issues)

科学计数法在计算过程中会出现特有的问题: